package com.henry.sentinel.fallback;

import com.henry.vo.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @program: spring-cloud-alibaba-demo
 * @description: 用于Demo控制器业务降级类
 * @author: Henry.zhang
 * @create: 2022-08-31 10:46
 */
@Component
@Slf4j
public class DemoFallBack {


    /**
     * 将所有的fallback方法集中到一个类中后的要求：
     *      1.每个方法必须是 static 修饰的静态方法
     *      2.每个方法的方法名必须和目标类的方法一致
     * 做为某个方法出现业务异常后，使用的降级方法
     * @param e
     * @return
     */
    public static R foo1(@RequestParam("i") int i, Throwable e){
        log.info("出现的异常：",e); //埋点
        return new R(555,"出错啦~！",i);
    }

}
